home *** CD-ROM | disk | FTP | other *** search
- Short: Powerful prg to rename/manipulate filenames
- Author: c9713363@alinga.newcastle.edu.au (Erik Spåre)
- Uploader: c9713363@alinga.newcastle.edu.au (Erik Spåre)
- Version: 2.4
- Type: util/cli
- Requires: OS 2.04 or above
-
- *****************************************************************************
- ** Case 2.4 - Filename Changer - by Erik Spåre (Parsec/Phuture 303) 980304 **
- ** Filematching routines by Anders Vedmar (Axehandle/PC303) **
- *****************************************************************************
-
- Very powerful program that lets you rename multiple files. Features:
-
- * Recursive pattern matching (no pattern targets all files in current dir)
- * More than 60 recognized extentions.
- * ENV:Caseopts file, where you can, for instance, add more extentions.
- * 5 Different lower/uppercase modes in many variants.
- * 8 extention operations (like add/remove/swap suffix/prefix/extention)
- * 11 string manipulation operations (like remove string, add head/tail)
- * Can handle *all* letters, not only a-z.
- * Direct or indirect renaming mode, won't crash on the ram-disk.
- * 100 percent 68000 assembler.
- * Freeware
- * And more...
-
-
- An example... Case -l -t -k -apmod Case -sp -w -ue
-
- MOD.OCEAN_LOADER_FIXED ==> mod.ocean_loader_fixed ==> Ocean_Loader_Fixed.MOD
- Mod.Green beret ==> mod.green_beret ==> Green_Beret.MOD
- mod.CRYSTAL HAMMER ==> mod.crystal_hammer ==> Crystal_Hammer.MOD
- DOC1 ==> mod.doc1 ==> Doc1.MOD
- Hunters_moon ==> mod.hunters_moon ==> Hunters_Moon.MOD
- MOD.SleepWalk ==> mod.sleepwalk ==> Sleepwalk.MOD
- MOD.(((nebulos))) ==> mod.nebulos ==> Nebulos.MOD
- mod.CREAM OF THE EARTH ==> mod.cream_of_the_earth ==> Cream_Of_The_Earth.MOD
- MOD.telephone!!! ==> mod.telephone ==> Telephone.MOD
-
-
- Here's a list of all the options...
-
- The caseing options
-
- -l All Lowercase
- -u All Uppercase
- -w Each new Word uppercase
- -f First letter uppercase
- -c Change cases
- -i Ignore suffix and/or prefix when caseing
- -I Don't Ignore suffix and/or prefix when caseing
-
- The extention operations
-
- -a Add specified prefix/suffix/extention
- -r Remove [specified] prefix/suffix/extention
- -C Change [given] pref/suff/ext to specified
- -s Swap prefix and/or suffix
- -E Ignore default extensions [only accept specified]
- -e Only accept default extentions [and specified]
- -L Set new prefix and/or suffix maxlength
- -g Give priority to prefix or suffix
-
- The string manipulation operations
-
- -t Transform spaces to underlines
- -T Transform underlines to spaces
- -d Delete all the spaces [or only specified]
- -D Delete specified strings
- -C Change string 1 to string 2
- -k Keep letters, digits, some more [and specified]
- -K Keep A-Z, digits, some more [and specified]
- -m Mutilate chars with ASCI values exceeding 128 to 45-127
- -a Add head/tail string to filename
- -r Remove head/tail string from filename
- -v Vomit files to PC-format
-
- The remaining options
-
- -D Disable env:caseopts file
- -q Be Quiet (only list errors)
- -n Neglect the directories
- -b Use a buffer when renaming (indirect)
- -B Don't use a buffer when renaming (direct)
- -S Simulate caseing, don't actually rename anything
- -- Stop option parsing
- ALL To recurse into subdirs.
- SHOWINFO To show a list of all recognized extentions
-
-
- Changes since version 2.1...
-
- ** Above mentioned new extentions were actually only added to the doc.
- I forgot to add them in the source. Apart from all those new
- extentions, there's three more: xm, s3m and rexx.
-
- ** Corrected flaw in the argument parsing. Case wouldn't report a
- syntax error when several source-names were entered. (This is not
- yet allowed)
-
- ** When in recursive mode, if a directory-name got renamed by Case,
- (so the characters actually changed, not only the cases) any
- files in that directory would not be found. Solved this by
- letting the pattern matching routine pass Case the directory names
- when they were leaved, instead of when they were entered.
-
- ** Whenever a file in the search path could not be locked for some
- reason, case would abort the whole operation with "can't find file
- or path!" If in the default buffered mode, no files would ever be
- renamed. Now, whenever the filematching routine cannot lock a file,
- Case will look at the name to determine if the user wanted that
- file to be renamed. (If, for instance, the user wanted to uppercase
- all filenames, and this file already was uppercased, there would be
- nothing to worry about.) If he didn't the file will simply be skipped.
- If he did, the fail counter will be incremented and the message "can't
- lock xxx because object is in use" will be displayed.
-
- ** The -C" option (change string 1 to string 2) was flawed.
- case21 -C"bl",bl bla would result in renaming bla to bla. Also:
- case21 -C"bl",bla bla would not rename bla to blaa, since Case thought
- this had already been done.
-
-
- Changes since version 2.2...
-
- ** Fixed flaw: Case -l HIRESDOOM(PPC).PNG resulted in "Can't find file
- or path!". This was because any filespecification that contained
- wildcards (like the paranthesis in this example) was assumed to be
- a searchpattern. Case will now begin by trying to lock the exact
- given pattern, and if it exists it won't enter the match mode but
- only pass this file (or directory). Thanks to Niels de Koning for
- reporting this!
-
- ** Found bug in AxeMatch! Case -u dirname ALL would make AxeMatch think
- that dirname was a filename! And it would lock the directory dirname
- resided in and start to recursively look for files matching dirname.
- If dirname was in the root of a partition, all files on that partition
- would be examined!
-
- ** Case -u dirname ALL will now uppercase everything in dirname as well
- as dirname itself. Thanks to Niels de Koning for suggesting this!
-
- ** Specified filenames not containing wildcards had to be specified
- EXACTLY right. So to uppercase 'fIlE' you had to write Case -u fIlE.
- Fixed this.
-
- ** Rewrote from scratch the routine that parses the argumentline (except
- the part that interpretates the options). Please report any unexpected
- behaviour!
-
- ** It's now possible to give several filename/pattern specifications,
- for instance Case -l file1 file2 file3 dir1/#?.txt would uppercase
- the three files file1-3 as well as all files ending with .txt in dir1.
-
- ** The env:caseopts file can now contain newlines. They will be converted
- to spaces. (And as usual, no spaces are allowed between the comma
- separators.)
-
- ** Added the option -- which will abort the option parsing. If you
- specify a filepattern that begin with - you need to use this
- to prevent Case from confusing the filepattern with an option.
-
- ** Added the keyword SHOWINFO. It will list all recognized extentions,
- internal as well as environmental.
-
- ** Decreased the program size with about 1400 bytes by moving some
- partly uninitialized data into the BSS section and by letting
- AxeMatch access most of its data relative to a5.
-
-
- Changes since version 2.3...
-
- ** Case v2.3 featured a serious bug which would cause deadlocks (in
- most cases) when specifying one or more filenames without
- wildcards. It worked perfectly during the 24 hours I was bugtesting
- it though, so I feel the whole thing is a bit unfair. Thanks to
- Niels de Koning & Finn Nielsen for reporting this, and my
- apologies to the ones whose Amigas I crashed!
-
-
- Remember:
-
- "This should be in every man's c-directory"
- /Axehandle.
-
-
- ============================= Archive contents =============================
-
- Original Packed Ratio Date Time Name
- -------- ------- ----- --------- -------- -------------
- 16348 9232 43.5% 04-Mar-98 23:08:00 +case
- 82525 23829 71.1% 10-Mar-98 00:44:36 +case.doc
- 88051 25436 71.1% 10-Mar-98 00:44:28 +case.guide
- 8394 3331 60.3% 10-Mar-98 00:44:50 +case.readme
- -------- ------- ----- --------- --------
- 195318 61828 68.3% 09-Mar-98 19:19:18 4 files
-